namespace CSharpPro._1021;

public class UserServiceImpl : UserService
{
    // 模拟数据库存储（实际项目中会使用数据库）
    private readonly List<User> _users = new List<User>();
    private int _nextId = 1; // 用于生成自增ID

    // 增
    public bool AddUser(User user)
    {
        if (user == null)
        {
            Console.WriteLine("添加失败：用户信息不能为空");
            return false;
        }
        // 自动分配ID（避免手动输入ID冲突）
        user.Id = _nextId++;
        _users.Add(user);
        Console.WriteLine($"添加成功：{user}");
        return true;
    }

    // 删
    public bool DeleteUser(int userId)
    {
        var userToRemove = _users.Find(u => u.Id == userId);
        if (userToRemove == null)
        {
            Console.WriteLine($"删除失败：ID为{userId}的用户不存在");
            return false;
        }

        _users.Remove(userToRemove);
        Console.WriteLine($"删除成功：ID为{userId}的用户");
        return true;
    }

    // 改
    public bool UpdateUser(User user)
    {
        if (user == null)
        {
            Console.WriteLine("修改失败：用户信息不能为空");
            return false;
        }

        var existingUser = _users.Find(u => u.Id == user.Id);
        if (existingUser == null)
        {
            Console.WriteLine($"修改失败：ID为{user.Id}的用户不存在");
            return false;
        }

        // 更新用户信息
        existingUser.Name = user.Name;
        existingUser.Age = user.Age;
        Console.WriteLine($"修改成功：{existingUser}");
        return true;
    }

    // 查
    public User GetUserById(int userId)
    {
        var user = _users.Find(u => u.Id == userId);
        if (user == null)
        {
            Console.WriteLine($"查询结果：ID为{userId}的用户不存在");
            return null;
        }

        Console.WriteLine($"查询结果：{user}");
        return user;
    }

}